package service;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;

import model.Empregado;

public class EmpregadoService {
	
	protected EntityManager entityManager;
	
	public EmpregadoService(EntityManager entityManager) {
		this.entityManager = entityManager;
	}
	
	public Empregado findEmpregado(long id) {
		Empregado empregado = entityManager.getReference(Empregado.class, id);
		return empregado;
	}
	
	public List<Empregado> listaEmpregados() {
		TypedQuery<Empregado> query = entityManager.createQuery(
				"SELECT e FROM Empregado e", Empregado.class);
		return query.getResultList();
	}
	
	public void deletaEmpregados() {
		TypedQuery<Empregado> query = entityManager.createQuery(
				"DELETE FROM Empregado", Empregado.class);
		query.executeUpdate();
	}
	
	public void insereEmp(Empregado emp) {
		entityManager.persist(emp);
	}
	
	public Empregado aumentaSalario(int id, long valor) {
		Empregado emp = entityManager.getReference(Empregado.class, id);
		if (emp != null) {
			emp.setSalario(emp.getSalario() + valor);
		}
		return emp;
	}
	
	public Empregado alteraNomeEmp(int id, String novoNome) {
		Empregado emp = entityManager.getReference(Empregado.class, id);
		if (emp != null) {
			emp.setNome(novoNome);
		}
		return emp;
	}
	
	public void deletaEmp(long id) {
		entityManager.remove(entityManager.getReference(Empregado.class, id));
	}

}
